Java中比较器的使用匿名内部类的写法

1.数组用arrays.sort
2.集合用Collections.sort

数据结构:

"sports": [
            {
                "liveInfo": null,
                "tcount": 3258,
                "picInfo": [
                    {
                        "ref": null,
                        "width": null,
                        "url": "http://cms-bucket.nosdn.127.net/2019/01/07/45021323676a490985570af4af4f3ba5.png",
                        "height": null
                    },
                    {
                        "ref": null,
                        "width": null,
                        "url": "http://cms-bucket.nosdn.127.net/2019/01/07/d5cf033ddc2f4011a07d9c0d87e5152c.png",
                        "height": null
                    },
                    {
                        "ref": null,
                        "width": null,
                        "url": "http://cms-bucket.nosdn.127.net/2019/01/07/6b57e5203fc54981ac7895a406cc3770.png",
                        "height": null
                    }
                ],
                "docid": "E4UQNB3Qbzheng",
                "videoInfo": null,
                "channel": "sports",
                "link": "https://3g.163.com/all/photoview/0005/164691.html",
                "source": "网易体育",
                "title": "大宝救命!跪谢对方门将!国足开门红了",
                "type": "photoset",
                "imgsrcFrom": null,
                "imgsrc3gtype": 2,
                "unlikeReason": "重复、旧闻/6,内容质量差/6",
                "isTop": null,
                "digest": "",
                "typeid": "0B4C0005|164691",
                "addata": null,
                "tag": "图集",
                "category": "推荐",
                "ptime": "2019-01-07 20:59:25"
            },
            {
                "liveInfo": null,
                "tcount": 43488,
                "picInfo": [
                    {
                        "ref": null,
                        "width": null,
                        "url": "http://cms-bucket.nosdn.127.net/2019/01/07/3253cb9696d14c5cbc8032af60717bdd.png",
                        "height": null
                    }
                ],
                "docid": "E4UQ9L4800058780",
                "videoInfo": null,
                "channel": "sports",
                "link": "https://3g.163.com/all/special/S1545887271992.html",
                "source": "网易体育",
                "title": "亚洲杯-吉国门将超级乌龙于大宝反超 国足2-1逆转",
                "type": "special",
                "imgsrcFrom": null,
                "imgsrc3gtype": 1,
                "unlikeReason": "重复、旧闻/6,内容质量差/6",
                "isTop": null,
                "digest": "网易体育1月7日报道:1月7日19点,2019亚洲杯C组首轮",
                "typeid": "S1545887271992",
                "addata": null,
                "tag": "专题",
                "category": "体育",
                "ptime": "2019-01-07 20:51:56"
            },

根据map对象的"ptime"的属性排序

List<Map<String,Object>> sportsLst = (List<Map<String, Object>>) dataMap.get("sports");
            Collections.sort(sportsLst, new Comparator<Map<String, Object>>() {
                @Override
                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                    try {
                        Date date1 = DateUtil.parseByFormat(o1.get("ptime") + "", "yyyy-MM-dd hh:mm:ss");
                        Date date2 = DateUtil.parseByFormat(o2.get("ptime") + "", "yyyy-MM-dd hh:mm:ss");
                        long date = date1.getTime() - date2.getTime();
                        return (int)date;
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }

若比较器返回的是-1,为递增排列,
若比较器返回的是1,为倒叙排列。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值